package us.wili.dev.netty.service;

import jodd.format.RomanNumber;
import us.wili.dev.netty.model.GameResponseDto;
import us.wili.dev.netty.model.game.Player;
import us.wili.dev.netty.model.game.Room;

import java.util.List;
import java.util.UUID;

public interface NettyMsgEventService {

    /**
     * 发送文字和表情
     * @param session
     * @param msg
     */
    void sendMessage(UUID session, String msg,Room room);


    /**
     * 给房间的每个玩家发送消息
     * @param room
     * @param rsp
     */
    void sendMsgToPlayerByRoom(Room room, GameResponseDto rsp);

    /**
     * 给房间每个在进行游戏的玩家发送消息
     * @param room
     * @param rsp
     */
    void sendMsgToIngamePlayerByRoom(Room room, GameResponseDto rsp);

    /**
     * 给房间中处于等待状态的玩家发消息
     * @param room
     * @param rsp
     */
    void sendMsgToWaitPlayerByRoom(Room room,GameResponseDto rsp);

    /**
     * 给一组玩家发消息
     * @param playerList
     * @param rsp
     */
    void sendMsgToList(List<Player> playerList, GameResponseDto rsp);

    /**
     * 给一个玩家发消息,批量发送调用
     * @param player
     * @param rsp
     */
    void sendMsgToPlayer(Player player,GameResponseDto rsp);

    /**
     * 给轮到某个玩家操作的消息
     *
     * @param nextTurn
     */
    void sendNextTurnMessage(Integer nextTurn,Room room);
}
